#include "public.h"
#include <stdio.h>
#include "seg.h"
#include "timer.h"
#include "key.h"

//数码管显示
uchar pos = 0,seg_str[16],seg_buf[8]; //显示位置,字符段码,显示的字符

//按键 
uchar key_val,key_old;

//其他变量
uchar seg_show_num;

void key_proc();
void seg_proc();

void main() {
	sys_init();
	timer1_init();

	while(1) {
		key_proc();
		seg_proc();
	}
}

//*******************T1中断*******************
void t1_isr() interrupt 3 {
	TH1 = (65535-2000)/256; //每2ms刷新显示
	TL1 = (65535-2000)%256;
	//数码管显示
	seg_disp(pos, seg_buf);
	if(++pos >= 8) pos = 0;
}


//*******************矩阵按键*******************
void key_proc() {
	key_val = key_scan_btn(); //读取按键按下的编号
	//key_val = key_scan(); //读取按键按下的编号
	key_val = key_val & (key_old^key_val);
	key_old = key_val;
	if(key_val) {
		seg_show_num = key_val;
	}
}

//*******************数码管*******************
void seg_proc() {
	//待显示的字符数组
	sprintf(seg_str, "%02d", (uint)seg_show_num);
	//将字符转换为段码
	seg_tran(seg_str, seg_buf);
}
